Repository Public MIT
1import type { Metadata } from "next";2import { ArtifactView, loadArtifact } from "@/components/artifact-view";34type P = { params: Promise<{ namespace: string; slug: string; version: string }> };56export async function generateMetadata({ params }: P): Promise<Metadata> {7 const { namespace, slug, version } = await params;8 const { a, rel } = await loadArtifact(namespace, slug, decodeURIComponent(version));9 return { title: `@${a.namespace}/${a.slug} v${rel?.version}`, description: a.summary, alternates: { canonical: `/@${a.namespace}/${a.slug}/versions/${rel?.version}` } };10}11export default async function Page({ params }: P) {12 const { namespace, slug, version } = await params;13 return <ArtifactView namespace={namespace} slug={slug} version={decodeURIComponent(version)} />;14}15